﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Coolite.Ext.Web;
using QFD.Controller;

namespace QFD.View.UnidadeDeNegocio
{
    public partial class grdUnidadeDeNegocio : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            using (QFDDataContext context = new QFDDataContext())
            {
                var selectUnidadeDeNegocio = from unidadeNegocio in context.GetTable<UNIDADENEGOCIO>()
                                       from coorporacao in context.GetTable<COORPORACAO>()
                                       where unidadeNegocio.CDCOORPORACAO == coorporacao.CDCOORPORACAO
                                       select new { unidadeNegocio.CDUNIDADENEGOCIO, unidadeNegocio.DSUNIDADENEGOCIO, unidadeNegocio.NMUNIDADENEGOCIO, coorporacao.CDCOORPORACAO, coorporacao.NMCOORPORACAO};
                var lista = selectUnidadeDeNegocio.ToList();

                if (!Ext.IsAjaxRequest)
                {
                    this.StoreUnidadeDeNegocio.DataSource = lista;
                    this.StoreUnidadeDeNegocio.DataBind();
                }
            }
        }

        public Store GridStore
        {
            get;
            set;
        }

        protected void Page_Init(object sender, EventArgs e)
        {
            this.unidadedenegocio.GridStore = this.StoreUnidadeDeNegocio;
            this.GridStore = this.StoreUnidadeDeNegocio;
        }

        protected void Refresh(object sender, StoreRefreshDataEventArgs e)
        {
            using (QFDDataContext context = new QFDDataContext())
            {
                var selectUnidadeDeNegocio = from unidadeNegocio in context.GetTable<UNIDADENEGOCIO>()
                                             from coorporacao in context.GetTable<COORPORACAO>()
                                             where unidadeNegocio.CDCOORPORACAO == coorporacao.CDCOORPORACAO
                                             select new { unidadeNegocio.CDUNIDADENEGOCIO, unidadeNegocio.DSUNIDADENEGOCIO, unidadeNegocio.NMUNIDADENEGOCIO, coorporacao.CDCOORPORACAO, coorporacao.NMCOORPORACAO };
                var lista = selectUnidadeDeNegocio.ToList();
                this.StoreUnidadeDeNegocio.DataSource = lista;
                this.StoreUnidadeDeNegocio.DataBind();
            }
        }

        protected void EditarUnidadeDeNegocio(object sender, AjaxEventArgs e)
        {
            string cdUnidadeDeNegocio = e.ExtraParams["cdUnidadeDeNegocio"];
            this.unidadedenegocio.SetUnidadeDeNegocio(ControllerUnidadeDeNegocio.getByUnidadeDeNegocio(int.Parse(cdUnidadeDeNegocio)));
            this.unidadedenegocio.ShowUnidadeDeNegocio();
        }

        protected void ConfirmDeleteUnidadeDeNegocio(object sender, AjaxEventArgs e)
        {
            string cdUnidadeDeNegocio = e.ExtraParams["cdUnidadeDeNegocio"];
            UNIDADENEGOCIO uniNegocio = ControllerUnidadeDeNegocio.getByUnidadeDeNegocio(int.Parse(cdUnidadeDeNegocio));
            ControllerUnidadeDeNegocio.deleteUnidadeDeNegocio(uniNegocio);
            this.GridStore.AddScript(string.Format("{0}.reload();", this.GridStore.ClientID));
            Ext.Msg.Alert("Alerta!", "Unidade de Negócio <b>" + uniNegocio.NMUNIDADENEGOCIO + " </b> excluído com sucesso!").Show();
        }
    }
}